import java.io.File;

/**
 * Created by hp on 2017/5/6.
 */
public class JavaFileNum {

    //java文件总数量
    private static int javaCount = 0;


    /**
     * 获取当前项目的绝对路径，并调用getJavaFileNum获得java文件数目
     * @return
     */
    public int countJavaFileNumber(){
        String rootPath = System.getProperty("user.dir");
        getJavaFileNum(rootPath);
        System.out.println("The Number of This Project'java File is: "+javaCount);
        return javaCount;
    }

    /**
     * 根据得到的路径获取该路径下所有的java文件数量:
     * 如果是目录，则继续便利
     * 如果是文件，则判断是否为java文件，如果是则++
     * @param path
     */
    public void getJavaFileNum(String path){
        String newPath = path;
        File file = new File(newPath);
        File[] files = file.listFiles();
        for(int i = 0; i < files.length; i++){
            if(!isDirectory(files[i])){
                if(isJavaFile(files[i])){
                    System.out.println("java File: "+files[i]);
                    javaCount++;
                }
            }else{
                String pathNew = newPath+"\\"+files[i].getName();
                getJavaFileNum(pathNew);
            }
        }
    }

    /**
     * 判断是否为文件夹
     * @param file
     * @return
     */
    public boolean isDirectory(File file){
        boolean flag = false;
        if(file.isDirectory()){
            flag = true;
        }
        return flag;
    }

    /**
     * 判断是否为java文件
     * @param file
     * @return
     */
    public boolean isJavaFile(File file){
        boolean flag = false;
        if(!isDirectory(file)){
            String suffixName = file.getName().substring(file.getName().lastIndexOf(".")+1);
            if(suffixName.equals("java")){
                flag = true;
            }
        }
        return flag;
    }
}
